﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DunLibrary.User;
using DunLibrary.CreditCard;
using DunLibrary.Base;
using DunLibrary.Organization;
using DunLibrary.Core;
using DunLibrary.Client;

namespace DunLibrary.Dun
{
    /// <summary>
    /// 一个催款案例
    /// </summary>
    public interface ICase:IItem
    {
        /// <summary>
        /// 案件分类(年-月-银行)
        /// </summary>
        CaseCatalog Catalog { get; set; }
        /// <summary>
        /// 银行
        /// </summary>
        Company Bank { get; set; }
        /// <summary>
        /// 年
        /// </summary>
        int Year { get; set; }
        /// <summary>
        /// 期间
        /// </summary>
        int Period { get; set; }
        /// <summary>
        /// 为了查询方便，增加年和月的联合字段
        /// </summary>
        int YearPeriod { get; set; }
        /// <summary>
        /// 信用卡
        /// </summary>
        Cardholder Holder { get; set; }
        /// <summary>
        /// 逾期(如果多个卡就取第一个卡的逾期)
        /// </summary>
        string CardDelayLevel { get; set; }
        /// <summary>
        /// 欠费记录
        /// </summary>
        IList<ArrearRecord> ArrearRecords { get; set; }
        /// <summary>
        /// 分公司
        /// </summary>
        DunLibrary.Organization.Organization BranchCompany { get; set; }
        /// <summary>
        /// 业务员
        /// </summary>
        DunLibrary.User.User Oper { get; set; }
        /// <summary>
        /// 电话催款记录
        /// </summary>
        IList<CallRecord> CallRecords { get; set; }
        /// <summary>
        /// 外访记录
        /// </summary>
        IList<VisitRecord> VisitRecords { get; set; }
        /// <summary>
        /// 本期汇款记录
        /// </summary>
        IList<ReturnRecord> ReturnRecords { get; set; }
        /// <summary>
        /// 批注
        /// </summary>
        IList<CaseComment> Comments { get; set; }
        /// <summary>
        /// 合计欠费
        /// </summary>
        double TotalAmount { get; set; }
        /// <summary>
        /// 累计还款金额（截至到当期）
        /// </summary>
        double TotalReturnAmount { get; set; }
        /// <summary>
        /// 管控状态
        /// </summary>
        ControlType ControlType { get; set; }
    }
}
